Distributed file systems offer many compelling advantages in establishing high performance computing environments. One example is the ability to easily expand, even at large scale. Another example is the ability to support multiple unique network protocols. In one example, a distributed file system can operate under a cluster of nodes topology, whereby clients can connect to any node among the cluster of nodes to perform file system activity. Individual nodes among the cluster of nodes each can contain their own processor(s), storage drives, memory and the like. Operating together in a cluster, the nodes can respond to client requests, store data, mirror data, and accomplish all the tasks of a modern file system. In communicating with clients, a distributed file system of nodes can support multiple protocol interactions. For example, some clients may want to communicate using NFS protocols, while other clients may desire SMB protocol exchanges to store/retrieve data, while still other clients may use HDFS. To support multiple clients using multiple protocols, protocol heads can be established on each node that act as a gateway for all clients using the protocol on that node to interact with the file system.
When accessing the file system, and connecting to individual nodes among a cluster of nodes, the distributed file system may seek to move or redirect clients from one node to another. For example, to achieve load balancing, a client on an overburdened node may be moved to a node that has spare capacity. In another example, a node can suffer node failure, whereby the node is no longer responsive to client requests. In this example, a client may be redirected to a different node that is still functioning and capable of fulfilling client requests. To effectuate the moving of clients of varying protocols from one node to a second node, a master list of network configuration can be maintained. The network configuration data can associate specific internet protocol (“IP”) addresses with a node and/or a protocol head of the node. By consulting the networking configuration data, processes can be aware of the current availability of various IP addresses as well as the current assignment of various IP addresses to allow for intelligent movement of clients between nodes.
Network configuration data can be stored in a centralized file of the distributed file system that all protocol heads in nodes in the cluster of nodes can access; however, this can create a bottleneck. For example, individual protocol heads may have the need for fast access to the network configuration data that may not be stored locally on the node where the protocol head resides. In another example, an individual protocol head may need to know when the network configuration data changes, which can create expensive overhead by each protocol head of each node polling the file for change events. In another example, different protocol heads may have different cadence for how they ingest network configuration data.